package com.gator.spring.framework.aop.intercept;

/**
 * @Authror PABLO
 * @Date 2022/5/8 17:20
 * @Desc 切点拦截器（通知）顶层接口，每个通知都必须实现，在Spring中，以集合的形式保存每个method对应的执行器链
 * Map<Method,List<PABLO_MethodInterceptor> chain
 */
public interface PABLO_MethodInterceptor {

    /**
     * @Description: 通过method对应的 连接链集合  依次调用
     * @Author: PABLO
     * @Date: 2022/5/9 13:40
     * @Params: [invocation 每一个动态连接链对象，即每个method对应的拦截器list]
     * @Return: java.lang.Object
     **/
    Object invoke(PABLO_MethodInvocation invocation) throws Throwable;

}
